package routers

import (
	beego "github.com/beego/beego/v2/server/web"
	"github.com/beego/beego/v2/server/web/context"
	c "project/controllers"
)

func init() {
	// 执行控制器之前调用过滤器
	beego.InsertFilter("/user/*", beego.BeforeExec, FilterUser)
	// 首页
	beego.CtrlGet("/", (*c.GoodsController).ShowIndex)
	// 注册页面
	beego.CtrlGet("/register", (*c.UserController).ShowReg)
	beego.CtrlPost("/register", (*c.UserController).HandleReg)
	// 激活用户
	beego.CtrlGet("/active", (*c.UserController).ActiveUser)
	// 用户登录
	beego.CtrlGet("/login", (*c.UserController).ShowLogin)
	beego.CtrlPost("/login", (*c.UserController).HandleLogin)
	// 退出登录
	beego.CtrlGet("/user/logout", (*c.UserController).Logout)
	// 用户中心信息
	beego.CtrlGet("/user/userCenterInfo", (*c.UserController).ShowUserCenterInfo)
	// 用户中心订单页
	beego.CtrlGet("/user/userCenterOrder", (*c.UserController).ShowUserCenterOrder)
	// 用户中心地址页
	beego.CtrlGet("/user/userCenterSite", (*c.UserController).ShowUserCenterSite)
	beego.CtrlPost("/user/userCenterSite", (*c.UserController).HandleUserCenterSite)
	// 商品详情展示
	beego.CtrlGet("/goodsDetail", (*c.GoodsController).ShowGoodsDetail)
	// 获取商品列表页
	beego.CtrlGet("/goodsList", (*c.GoodsController).ShowList)
	// 商品搜索
	//beego.Router("/goodsSearch", &controllers.GoodsController{}, "post:HandleSearch")
	beego.CtrlPost("/goodsSearch", (*c.GoodsController).HandleSearch)
	// 添加购物车
	beego.CtrlPost("/user/addCart", (*c.CartController).HandleAddCart)
	// 展示购物车页面
	beego.CtrlGet("user/cart", (*c.CartController).ShowCart)
	// 添加购物车数量
	beego.CtrlPost("/user/UpdateCart", (*c.CartController).HandleUpdateCart)
	// 删除购物车数据
	beego.CtrlPost("/user/deleteCart", (*c.CartController).DeleteCart)
	//// 展示订单页面
	//beego.Router("/user/showOrder", &controllers.OrderController{}, "post:ShowOrder")
	//// 添加订单
	//beego.Router("/user/addOrder", &controllers.OrderController{}, "post:AddOrder")
	//// 处理支付
	//beego.Router("/user/pay", &controllers.OrderController{}, "get:HandlePay")
	//// 支付成功
	//beego.Router("user/payok", &controllers.OrderController{}, "get:PayOk")
}

// FilterUser 过滤器
var FilterUser = func(ctx *context.Context) {
	userName := ctx.Input.Session("userName")
	if userName == nil {
		ctx.Redirect(302, "/login")
		return
	}
}
